package com.sicheng.lc.lc笔试.京东篇;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * @author zsc
 * @version 1.0
 * @date 2022/8/27 19:29
 */
public class 长城 {
    /**
     * 数组a调成长城数组最小操作次数，原数组的每个元素都可以调成另一个元素
     * 原数组：  a0 a1 a2 a3 a4 a5 ...
     * 长城数组：x  y  x  y  x  y  ...
     * x！=y
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }

        Map<Integer, Integer> map1 = new HashMap<>(1 << 15);
        Map<Integer, Integer> map2 = new HashMap<>(1 << 15);

        for (int i = 0; i < n; i += 2) {
            int x = map1.getOrDefault(a[i], 0);
            map1.put(a[i], x + 1);
        }

        for (int i = 1; i < n; i += 2) {
            int x = map2.getOrDefault(a[i], 0);
            map2.put(a[i], x + 1);
        }
        int res;


        int[] max1 = map1.keySet().stream().sorted((k1, k2) -> map1.get(k2) - map1.get(k1)).limit(2).mapToInt(k -> k).toArray();
        int[] max2 = map2.keySet().stream().sorted((k1, k2) -> map2.get(k2) - map2.get(k1)).limit(2).mapToInt(k -> k).toArray();
        if (max1[0] != max2[0]) {
            res = n - map1.get(max1[0]) - map2.get(max2[0]);
        } else {
            res = Math.min(n - map1.get(max1[0]) - map2.get(max2[1]), n - map1.get(max1[1]) - map2.get(max2[0]));
        }
        System.out.println(res);
    }
}
